/**
 * @file cubic_interpolation.h
 * Cubic interpolation library header.
 */
#define CUBIC_INTER_POINTS	4
#define CUBIC_INTER_MIN_DATA	3
#define sizeof_array(a) sizeof(a)/sizeof(*a)

/**
 * Curve data type
 */
typedef struct {
	float *data;	///< data array
	uint8_t size;	///< number of data samples
} curve_t;
/**
 * Surface data type
 */
typedef struct {
	float *data;	///< data matrix
	uint8_t row;	///< num of rows
	uint8_t col;	///< num of columns
	char name[8];	///< debug info
} surface_t;

void curve_resample(curve_t in, curve_t out);
void surface_resample(surface_t in, surface_t out);
void surface_gauss_init(surface_t s);
void surface_print(surface_t s);
void surface_diff(surface_t d, surface_t a, surface_t b);
